# 从 qtpy 库导入 QtCore 模块，不过该导入未使用，后续可考虑移除
from qtpy import QtCore

# 从 qtpy.QtWidgets 模块导入所有内容，用于创建和管理 GUI 组件
from qtpy.QtWidgets import *

# 从 src.UI.Utils.stylesheet 模块导入 editableStyleSheet 函数，用于获取可编辑的样式表
from src.UI.Utils.stylesheet import editableStyleSheet


class WatchItem(QGraphicsTextItem):
    """
    WatchItem 类继承自 QGraphicsTextItem，用于在图形场景中显示文本项。
    该类重写了 paint 方法，为文本项添加了矩形边框和背景颜色。

    :param text: 文本项显示的初始文本，默认为空字符串
    """

    def __init__(self, text=""):
        # 调用父类 QGraphicsTextItem 的构造函数，初始化文本项
        super(WatchItem, self).__init__(text)

    def paint(self, painter, option, widget):
        """
        重写 paint 方法，用于绘制文本项的边框和背景，然后调用父类的 paint 方法绘制文本。

        :param painter: 用于绘制图形的 QPainter 对象
        :param option: 包含绘制选项的 QStyleOptionGraphicsItem 对象
        :param widget: 可选的绘制部件，默认为 None
        """
        # 绘制文本项的边框矩形
        painter.drawRect(self.boundingRect())
        # 使用样式表中的背景颜色填充文本项的矩形区域
        painter.fillRect(self.boundingRect(), editableStyleSheet().BgColor)
        # 调用父类的 paint 方法，绘制文本项的文本内容
        super(WatchItem, self).paint(painter, option, widget)